package com.woniuxy.ams.dao;

import com.woniuxy.ams.entity.User;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author fyx
 * @description 针对表【user(用户表)】的数据库操作Mapper
 * @createDate 2021-12-14 15:21:38
 * @Entity com.woniuxy.ams.entity.User
 */
public interface UserDao {

    /**
     * 查询所有的用户
     * @param user 用户搜索的user
     * @return user集合
     */
    List<User> findAllAndSearch(User user);

    /**
     * 通过名字查找用户
     * @param name 用户名
     * @return 用户
     */
    User findOneByName(String name);

    /**
     * 通过id查找用户
     * @param id id
     * @return 用户
     */
    User findOneById(int id);

    /**
     * 通过id修改状态
     * @param id id
     * @return int
     */
    int updateStatus(Integer id);

    /**
     * 通过user对象,向数据库新增
     * @param user user
     * @return int
     */
    int addUser(User user);

    /**
     * 通过id集合批量修改状态
     * @param ids id
     * @return int
     */
    boolean updateStatusByIds(List<Integer> ids);
    /**
     * 通过user对象,设置密码
     * @param user user
     * @return int
     */
    boolean setPassword(User user);
    /**
     * 修改用户信息,同时重置密码
     * @param user 用户
     * @return 是否操作成功
     */
    boolean updateUser(User user);

    /**
     * 分组查询
     * @param user 用户对象
     * @param type 分组类型
     * @return user集合
     */
    List<User> findUserByGroup(@Param("user") User user, @Param("type") String type);
}




